草庐IT

python - 如何为 WTForms SelectField 设置默认值?

全部标签

ruby - 如何在 Ruby 中设置 bool 默认值?

对于其他类型的变量,我使用||=,但这对bool值不起作用(x||=true将x赋值给true,即使x之前被分配为false)。我认为这会起作用:x=trueunlessdefined?(x)但它没有:它出于某种原因将x分配给nil。(这里的解释将不胜感激。)我知道一种有效的方法:unlessdefined?(x)x=trueend但它相当冗长。在Ruby中,是否有更简洁的方法为bool变量分配默认值? 最佳答案 您必须先defined?,否则解析器到达x=然后定义x(这在运行unless:之前让它成为nil)defined?(x)

ruby - 当字符串默认不可变时,如何描述可变字符串?

当一个文件有pragma时:#frozen_string_literal:true默认情况下,该文件中所有作为文字写入的字符串都被卡住。当我希望我的字符串总体上是不可变的,因此我使用pragma,但想要有几个可变字符串时,推荐的编写它们的方法是什么?我能想到的是:String.new("foo") 最佳答案 我错过了。推荐的方法是使用+@方法字符串文字。(+"foo").frozen?#=>false(-"foo").frozen?#=>true"foo".frozen?#=>true

ruby - 修改默认哈希值

这个问题在这里已经有了答案:Strange,unexpectedbehavior(disappearing/changingvalues)whenusingHashdefaultvalue,e.g.Hash.new([])(4个答案)关闭6年前。Ruby允许您定义散列的默认值:h=Hash.new(['alright'])h['meh']#=>["alright"]显示散列时会显示值的分配,但不会显示修改后的默认值。'坏'在哪里?h['good']=['fine','dandy']h['bad'].push('unhappy')h#=>{"good"=>["fine","dandy"]

ruby - 如何停止使 tmux 自动设置 RBENV_VERSION

当我启动tmux时,tmux会自动设置RBENV_VERSION...有人知道怎么阻止吗?因为它会自动设置,所以我需要做$导出RBENV_VERSION取消设置并使.ruby-version工作。谢谢。 最佳答案 tmux本身永远不会自行设置(或取消设置)RBENV_VERSION。您有一些配置导致了这种情况。我的猜测是RBENV_VERSION是在您启动tmux服务器时设置的,它现在是tmux“全局环境”(所有继承的基础环境)的一部分tmux启动的进程)。你可以检查这个tmuxshow-environment-g|grepRBEN

ruby - Jekyll 默认使用系统 Ruby 版本而不是 RVM 版本

我已经查看了数十篇关于此的帖子,但仍然不太明白/没有找到相同的情况。基本上,我有默认设置为Ruby2.0.0的RVM,但是当我使用我的Jekyll页面进入目录并运行时jekyllserve结果是/Library/Ruby/Site/1.8/rubygems/dependency.rb:298:in`to_specs':Couldnotfind'jekyll'(>=0)among5totalgem(s)(Gem::LoadError)from/Library/Ruby/Site/1.8/rubygems/dependency.rb:309:in`to_spec'from/Library/

ruby-on-rails - 无法让 Paperclip 正确设置我的 S3 URL

我在Rails4应用程序中使用回形针和aws-sdkgem。我在paperclip.rb配置中定义了:path选项,没有:url选项:Paperclip::Attachment.default_options[:path]=":class/:attachment/:id_partition/:style/:filename"它会像这样保存我上传的图片:http://s3.amazonaws.com/mybucket-development/profiles/avatars/000/000/026/original/image_file_name.png?1420575189没问题,它被

ruby - Rack Session Cookie 和 Sinatra - 设置和访问数据

我使用的是RackSessionPool,但是我的用户会从一个Web服务器线程被踢到另一个线程,从而导致session数据过期。我开始只是在Sinatra中启用:sessions来玩弄,但是我无法使用它,因为我有多个使用Sinatra的应用程序(它似乎正在使用相同的key-不确定这是否是因为它是同一主机)因为我的应用程序会互相破坏,所以我现在正在尝试RackSessionCookie并设置变量(与启用:sessions相同,但您可以设置变量)太棒了!但是现在我无法按照我在RackSessionPool和enable:sessions中使用它的方式访问session数据session[:

Ruby 相当于 Python setattr()

好吧,将我添加到爱上Ruby但对PyAddiction挥之不去的Python程序员的列表中。喜欢关于Python'sgetattr的帖子,我正在寻找与此等效的Ruby:setattr(obj,'attribute',value)其中obj是一个对象实例,attribute是对象属性之一的字符串名称,value是该对象的值。等效代码为:obj.attribute=value我假设这是可能的(因为现在在Python中的任何可能在Ruby中似乎更容易),但找不到它的文档。 最佳答案 obj.instance_variable_set("@

ruby - 可配置的 ruby​​ 记录器设置 : Logger. new().level = variable

我想更改应用程序(ruby)的日志记录级别。require'logger'config={:level=>'Logger::WARN'}log=Logger.newSTDOUTlog.level=Kernel.const_getconfig[:level]好吧,irb对此并不满意,并向我抛出“NameError:错误的常量名称Logger::WARN”。啊!我被侮辱了。我可以在某些情况下/何时解决这个问题,或者做log.level=1,但必须有更优雅的方法!有没有人有什么想法?-丹尼尔 最佳答案 为什么不直接在config哈希中使用

ruby - OSX Mountain Lion 上的默认 Ruby 版本?还是 1.8.x 或 1.9.x?

OSXMountainLion上的默认Ruby版本是什么?还是1.8.x或1.9.x? 最佳答案 在MountainLion上,它是Ruby1.8.7-p358(使用OSX10.8和10.8.3测试):$sw_versProductName:MacOSXProductVersion:10.8.3BuildVersion:12D78$/usr/bin/ruby-vruby1.8.7(2012-02-08patchlevel358)[universal-darwin12.0] 关于ruby-